/**
 * 
 */
package br.com.dp.dto.dominio;

import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.Setter;
import br.com.dp.dto.dominio.generico.DominioEnum;


/**
 * @author emmanuel
 * Enum responsável por fornecer os perfis do sistema.
 */
@AllArgsConstructor
public enum PerfilEnum implements DominioEnum<Long> {
	NON(0l,"NON","Nenhum perfil associado"),
	ADM(1l,"ADM","Administrador do sistema"),
	PRP(2l,"PRP","Proprietário"),
	FNC(3l,"FNC","Funcionário"),
	CLT(4l,"CLT","Cliente");
	
	/**
	 * Codigo: Valor numérico do Enum referente a página no banco de dados.
	 */
	@Getter
	@Setter
	private Long codigo;
	
	/**
	 * Perfil: {@link String} referente ao perfil.
	 */
	@Getter
	@Setter
	private String perfil;
	
	/**
	 * Descricao: {@link String} referente à uma breve descrição do perfil.
	 */
	@Getter
	@Setter
	private String descricao;

	/* (non-Javadoc)
	 * @see br.com.dp.dto.dominio.generico.DominioEnum#getEnumByChave(java.lang.Object)
	 */
	@Override
	public PerfilEnum getEnumByChave(Long chave) {
		for (PerfilEnum perfilEnum : values())
			if(perfilEnum.getCodigo() == chave)
				return perfilEnum;
		return null;
	}
}
